home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1984-04-24 | 6.2 KB | 199 lines
10 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 20 LOCATE 7,8 ,0:PRINT "General utility programs" 30 COLOR 9 ,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 40 LOCATE 11,9,0:PRINT CHR$(179)+" ATTACK "+CHR$(179) 50 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 60 COLOR 9,0:LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.1 "+CHR$(179) 70 BEEP 80 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 90 COLOR 15,0,1:LOCATE 17,7,0:PRINT "OCTOBER 7 1982 MOD-5-5-M " 100 COLOR 9,0:LOCATE 23,6,0:PRINT "Press space bar to continue..." 110 IF INKEY$ <> "" THEN GOTO 110 120 CMD$ = INKEY$ 130 IF CMD$ = "" THEN GOTO 120 140 IF CMD$ = CHR$(27) THEN GOTO 160 150 IF CMD$ <> " " THEN GOTO 120 160 REM TRANSFER COMMAND 500 R1$=LEFT$(TIME$,2):R2$=RIGHT$(TIME$,2):R3$=MID$(TIME$,3,2) 510 RANDOMIZE VAL(R1$+R2$+R3$) 520 KEY OFF:SCREEN 0,1:SC=0:SF=60:BD=35:WIDTH 40:COLOR 7,0:CLS :DEF SEG=&H40:POKE &H17,&H40 530 LOCATE 1,1,0:PRINT "DO YOU WANT INSTRUCTIONS ?":I$=INKEY$:IF I$="" THEN 530 ELSE IF I$="Y" THEN GOSUB 1800 540 A$="_____/\_____/\__/\_______/\_/\____/\__/\___\[\_/\_____/\__oo\[\oo____/\___/\/\_ZP?___/\__/\\\\\\/\___\WW\___/\___sr__/\__\RRR\__\AAA\_/\__/\__sr__/\______/\_____/\__/\_______/\_/\____/\__/\?" 550 CLS:IF SC=0 THEN DIM X(4),Y(4),R(4) 560 L=0:Y1=0:Q=1:Y(1)=14:X(1)=40:Q1=1:SE=0:B=-1:Z=0 570 Y=INT(RND(1)*14)+8 580 COLOR 1:LOCATE 5,10,0:PRINT "________________________________________"; 590 M$=STRING$(36,196):N$=STRING$(36,32) 600 COLOR 7:LOCATE 4,3:PRINT "BOMBS -";BD;" SCORE -";SC;:LOCATE 4,28:PRINT"LASERS -";SF;" 610 COLOR 1:LOCATE 5,10,0:PRINT "________________________________________"; 620 B$=MID$(A$,1,40) 625 DEF SEG=0:POKE 1047,32 630 COLOR 6:LOCATE 23,1+Z,0:PRINT B$; 640 GOSUB 2100 650 L=L+1:IF L=150 THEN SOUND 40,0:GOTO 1580 660 IF Z>0 THEN Z=Z-1 670 B$=MID$(A$,L+Z,40-Z) 680 COLOR 6:LOCATE 23,1+Z,0:PRINT B$; 690 IF Y5=1 THEN SOUND 1500,0:SOUND 1500,0.1:C$=INKEY$:GOTO 780 700 C$=INKEY$:IF C$="" THEN 800 710 IF C$="8" THEN Y1=-1 720 IF C$="2" THEN Y1=1 730 IF C$="5" THEN Y1=0 740 GOTO 780 780 IF BD>0 AND B=-1 AND Y<20 THEN IF C$="4" THEN GOSUB 1030 790 IF SF>0 AND C$="6" THEN GOSUB 1100 800 IF Y5<>1 THEN SOUND 32767,0.01:SOUND 45,0.01 810 IF Y+Y1=6 THEN Y5=1:Y1=1 820 IF Y+Y1=23 THEN SE=1:GOTO 1200 830 LOCATE Y,2:PRINT " "; 840 Y=Y+Y1 850 COLOR 15:LOCATE Y,2:PRINT ">M";CHR$(26); 860 IF B=1 THEN GOSUB 1070 870 FOR Q=1 TO Q1 880 IF R(Q)<>1 THEN 910 890 IF R(Q)=1 AND INT(RND(1)*50)>45 THEN R(Q)=0:GOTO 910 900 IF Q<Q1 THEN Q=Q+1:GOTO 880 ELSE 1020 910 LOCATE Y(Q),X(Q):PRINT " " 920 X(Q)=X(Q)-2:Y(Q)=Y(Q)+Y1(Q) 930 IF X(Q)=0 THEN GOSUB 1410 940 COLOR 7:LOCATE Y(Q),X(Q):PRINT CHR$(27); 950 IF (Q1<4 AND X(Q)=30) THEN GOSUB 1430 960 IF Y(Q)<Y THEN Y1(Q)=1 970 IF Y(Q)>Y THEN Y1(Q)=-1 980 IF INT(RND(1)*40)>35 THEN Y1(Q)=-Y1(Q) 990 IF Y(Q)+Y1(Q)=23 OR Y(Q)+Y1(Q)=6 THEN Y1(Q)=0 1000 IF ((X(Q)=4 OR X(Q)=2) AND Y(Q)=Y) THEN 1200 1010 NEXT Q 1020 GOTO 650 1030 IF Y/2=INT(Y/2) THEN BY=Y+1 ELSE BY=Y 1040 COLOR 7:B=1:BD=BD-1:Y2=Y:LOCATE 4,3:PRINT "BOMBS -";BD 1050 COLOR 2:LOCATE BY,3:PRINT ""; 1060 RETURN 1070 IF BY=21 THEN GOSUB 1450:RETURN 1080 COLOR 2:LOCATE BY,3:PRINT " ";:BY=BY+2:LOCATE BY,3:PRINT ""; 1090 RETURN 1100 COLOR 4:LOCATE Y,5:PRINT M$;:SF=SF-1:COLOR 7:LOCATE 4,28:PRINT "LASERS -";SF 1110 SOUND 32767,0:SOUND 900,1:FOR D=1 TO 20:NEXT D:SOUND 32767,0 1120 LOCATE Y,5:PRINT N$; 1130 FOR W=1 TO Q1:IF Y=Y(W) AND X(W)>4 AND R(W)<>1 THEN 1160 1140 NEXT W 1150 RETURN 1160 SC=SC+20:COLOR 7:LOCATE 4,14:PRINT "SCORE -";SC 1170 LOCATE Y(W),X(W):PRINT "0";:FOR S=150 TO 160:SOUND S,0.1:NEXT S:LOCATE Y(W),X(W):PRINT " "; 1180 Y(W)=INT(RND(1)*16)+7:X(W)=40:R(W)=1 1190 RETURN 1200 SOUND 32767,0:LOCATE Y,2:PRINT " "; 1210 COLOR 7 1220 IF SE=1 THEN Y=Y+Y1 1230 LOCATE Y,2:PRINT ">M";CHR$(26);:SOUND (RND(1)*99)*C+40,0.01 1240 FOR D=1 TO 100:NEXT D 1250 FOR C1=178 TO 176 STEP -1:FOR C=15 TO 0 STEP -1 1260 LOCATE Y,2:PRINT CHR$(C1);CHR$(C1);CHR$(C1);:SOUND (RND(1)*99)*C+40,0.01 1270 NEXT C:NEXT C1 1280 SOUND 39,0 1290 LOCATE Y,2:PRINT " " 1295 IF SC>800 THEN FOR N=1 TO 15:COLOR N,N:CLS:SOUND N*37,7:FOR T=1 TO 115:NEXT T:NEXT N:COLOR 7,0:CLS:LOCATE 11,6:PRINT"G A M E O V E R":PRINT:PRINT:PRINT" GOOD JOB!!":DEF SEG=0:POKE 1047,0:END 1300 A$="YOU FAILED" 1310 FOR L=1 TO 10:B$=MID$(A$,L,1) 1320 LOCATE 10,14+L:PRINT B$; 1330 SOUND 60,0.1:SOUND 60,0:FOR D=1 TO 50:NEXT D 1340 NEXT L 1350 A$="YOUR MISSION" 1360 FOR L=1 TO 12:B$=MID$(A$,L,1) 1370 LOCATE 12,13+L:PRINT B$; 1380 SOUND 60,0.1:SOUND 60,0:FOR D=1 TO 50:NEXT D 1390 NEXT L 1400 DEF SEG=0:POKE 1047,0:END 1410 Y(Q)=INT(RND(1)*15)+8:X(Q)=40:R(Q)=1:Y1(Q)=0 1420 RETURN 1010 1430 Q1=Q1+1:Y(Q1)=INT(RND(1)*15)+8:X(Q1)=40:Y1(Q)=0 1440 RETURN 1450 B=-1 1460 BE=SCREEN(BY+2,3) 1470 LOCATE BY,3:PRINT " "; 1480 BY=BY+2 1490 SOUND 50,0 1500 FOR D=178 TO 176 STEP -1:FOR S=140 TO 142:LOCATE BY,1:COLOR INT(RND(1)*16+1):PRINT " ";STRING$(3,D):SOUND S,0.01:NEXT S:SOUND 40,0:NEXT D 1510 IF BE=210 OR BE=193 THEN SC=SC+(25-Y2)*12 1514 IF BE=>169 AND BE<>210 AND BE<>193 AND BE<>196 THEN SC=SC+INT(RND*30)+10 1520 COLOR 7:LOCATE 4,14:PRINT "SCORE -";SC 1530 Z=4 1540 LOCATE BY,2:PRINT " " 1550 RETURN 1560 BY=BY+2 1570 SOUND 50,0 1580 'COLOR 7:LOCATE 7,1:PRINT "\ /"; 1590 FOR D=1 TO 150:NEXT D 1600 COLOR 7:LOCATE 7,1:PRINT " \ /"; 1610 FOR D=1 TO 150:NEXT D 1620 LOCATE 7,1:PRINT "/ \":COLOR 14 1630 FOR L=7 TO Y-1:LOCATE L,3:PRINT "["; 1640 FOR D=1 TO 100:NEXT D:SOUND L*100,0.1:NEXT L 1650 COLOR 15 1660 FOR L=Y-1 TO 7 STEP -1:LOCATE L+1,2:PRINT " ";:LOCATE L,2:PRINT ">="+CHR$(26); 1670 FOR D=1 TO 100:NEXT D:SOUND L*100,0.1:NEXT L 1680 COLOR 7:LOCATE L+1,2:PRINT " "; 1690 FOR D=1 TO 150:NEXT D 1700 LOCATE L+1,1:PRINT " \ / "; 1710 FOR D=1 TO 150:NEXT D 1720 LOCATE L+1,1:PRINT " "; 1730 LOCATE L,2:PRINT "___"; 1740 A$="MISSION COMPLETE" 1750 FOR L=1 TO 16:B$=MID$(A$,L,1) 1760 LOCATE 10,11+L:PRINT B$; 1770 SOUND 60,0.1:SOUND 60,0:FOR D=1 TO 50:NEXT D 1780 NEXT L 1790 IF SC>500 THEN SOUND 100,3:BEEP:SOUND 120,1:BEEP:SOUND 200,3:SOUND 400,3:SOUND 500,4:SOUND 600,5:SOUND 700,2:SOUND 800,3:SOUND 700,2:SOUND 200,3:GOTO 1795 1793 SOUND 100,2:SOUND 300,2:SOUND 500,3:END 1795 LOCATE 15,5:PRINT "ON TO THE NEXT ROUND!" 1797 FOR O=1 TO 1900:NEXT O 1799 GOTO 540 1800 CLS 1810 ' + 1820 PRINT " YOUR MISSION IS TO ATTACK AND DESTROY" 1830 PRINT "THE APPLE COMPUTER MANUFACTURING PLANT." 1840 PRINT "YOU ARE ALLOTED 35 BOMBS AND 60 LASERS." 1850 PRINT "THERE ARE APPLE-OWNED FIGHTERS TRYING" 1860 PRINT "TO STOP YOU,YOU MUST DESTROY THEM WITH" 1870 PRINT "YOUR LASERS.IF YOU GET HIT BY THEM THEN" 1880 PRINT "YOU ARE DESTROYED,IF YOU HIT THE GROUND" 1890 PRINT "THEN YOU ARE DESTROYED.IF YOU GO OUT OF" 1900 PRINT "THE ATMOSPHERE (THE BLUE LINE),THEN YOU" 1910 PRINT "LOOSE ALL CONTROL EXCEPT LASERS AND" 1920 PRINT "BOMBS,AND YOUR SHIP WILL BEGIN FALLING." 1930 PRINT " DROP BOMBS ON ALL STRUCTURES AND YOU" 1940 PRINT "WILL GET POINTS. THE APPLE PLANT (SHOWN" 1950 PRINT "BELOW) IS WORTH THE MOST POINTS." 1960 PRINT 1970 COLOR 6:PRINT "___sr__/\__\RRR\__\AAA\_/\__/\__sr__/\__"; 1980 COLOR 7+16:PRINT " ^^^ ^^^" 1990 COLOR 7:PRINT 2000 PRINT " IF YOUR SCORE IS HIGH ENOUGH AFTER " 2010 PRINT "ROUND ONE THEN YOU ARE READY TO FACE " 2020 PRINT "ROUND TWO. " 2030 LOCATE 25,1,0:PRINT "press space bar to continue"; 2040 A$=INKEY$:IF A$="" THEN 2040 2050 PRINT " USE CURSOR CONTROL KEYS TO MOVE,8 TO" 2060 PRINT " GO UP,2 TO GO DOWN,5 TO STOP,4 TO " 2070 PRINT " DROP BOMBS, AND 6 TO FIRE THE LASER" 2080 A$=INKEY$:IF A$="" THEN 2080 2090 CLS:RETURN 2100 'COLOR 7:LOCATE 7,1:PRINT "\ /"; 2110 FOR D=1 TO 150:NEXT D 2120 COLOR 7:LOCATE 7,1:PRINT " \ /"; 2130 FOR D=1 TO 150:NEXT D 2140 LOCATE 7,1:PRINT "/ \":COLOR 14 2150 FOR L=7 TO Y-1:COLOR 14:LOCATE L,2:PRINT " [ ";:COLOR 15:LOCATE L+1,2:PRINT ">="+CHR$(26); 2160 FOR D=1 TO 100:NEXT D:SOUND L*100,0.1:NEXT L 2170 COLOR 15 2180 FOR L=Y-1 TO 7 STEP -1:LOCATE L,3:PRINT " "; 2190 FOR D=1 TO 100:NEXT D:SOUND L*100,0.1:NEXT L 2200 COLOR 7:LOCATE L+1,2:PRINT " "; 2210 FOR D=1 TO 150:NEXT D 2220 LOCATE L+1,1:PRINT " \ / "; 2230 FOR D=1 TO 150:NEXT D 2240 LOCATE L+1,1:PRINT " "; 2250 LOCATE L,2:PRINT "___"; 2260 FOR D=1 TO 150:NEXT D:COLOR 1:LOCATE L,2:PRINT "___"; 2270 RETURN